/*
 * Copyright (c) 2020-2024 Huawei Cloud Computing Technology Co., Ltd. All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without modification,
 * are permitted provided that the following conditions are met:
 *
 * 1. Redistributions of source code must retain the above copyright notice, this list of
 *    conditions and the following disclaimer.
 *
 * 2. Redistributions in binary form must reproduce the above copyright notice, this list
 *    of conditions and the following disclaimer in the documentation and/or other materials
 *    provided with the distribution.
 *
 * 3. Neither the name of the copyright holder nor the names of its contributors may be used
 *    to endorse or promote products derived from this software without specific prior written
 *    permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
#ifndef _MQTT_CLIENT_H_
#define _MQTT_CLIENT_H_

#include "hw_type.h"
#include "common.h"

#define SDK_VERSION                         "V1.0.0"

#define MQTT_SERVER_URI                         "tcp://d4e2605f29.st1.iotda-device.cn-north-4.myhuaweicloud.com:1883"
#define MQTT_SERVER_HOST                        "d4e2605f29.st1.iotda-device.cn-north-4.myhuaweicloud.com"
#define MQTT_SERVER_PORT                        "1883"
#define MQTT_CLIENTID                           "66a8603af2f30a051f376966_101780_0_0_2024082106"

#define MQTT_USERNAME                           "66a8603af2f30a051f376966_101780"
#define MQTT_PASSWORD                           "eb889658c8546475176e1efb060f18d2c2023a0d771a36ba75cb60a12682f617" //"12345678"

// #define CONFIG_CLIENT_BUF_SIZE                  SIZE_1K

#define MQTT_SUBTOPIC_SET                       "$oc/devices/66a8603af2f30a051f376966_101780/sys/properties/set"
#define MQTT_SUBTOPIC_DOWN                      "$oc/devices/66a8603af2f30a051f376966_101780/sys/messages/down"
#define MQTT_PUBTOPIC                           "$oc/devices/66a8603af2f30a051f376966_101780/sys/properties/report"


#define CFG_SIZE_SEND_BUFF                      (1024  * 2)
#define CFG_SIZE_RECV_BUFF                      (1024  * 2)



void MqttReportThreadTask(void *args);
void mqttClientCreate_TaskEntry(void);
void Mqtt_ReportBmsInfo_Handle(void);
int ReportDeviceProperties(char *payload);
void InitMqttClient(void);

#endif

